﻿#pragma once

extern "C"
{
#pragma pack(push, 1)
    struct NpcIdName
    {
        BYTE id;
        char name[33];
        WORD reserved1;
        char reserved2[18];
    };

    struct ServerLineInfo
    {
        char name[22];
        BYTE code;
        BYTE rate;
    };

    struct ServerListInfo
    {
        char name[20];
        BYTE lineCount;
        BYTE reserved;
        ServerLineInfo serverLineInfos[20];
    };


    struct TextureDataInfo
    {
        char name[32];
        float width;
        float height;
        int channels; //每像素几字节
        BYTE* data;
    };

    struct SocketDataItem
    {
        BOOL fHaveData;
        int dataLen;
        BYTE bytes[0x2000];
    };

    struct SocketDataBuf
    {
        HWND hwnd;
        int iMaxSockets;	//WSAData.iMaxSockets
        SOCKET sock;
        BYTE sendBuf[0x2000];
        int sendLen;
        BYTE recvBuf[0x2000];
        int recvLen;
        BOOL fDebug;		//是否调用nullsub_1(输出调试信息)
        int x3;
        SocketDataItem dataItems[300];
    };

    struct MyGameObjInfo
    {
        char name[11];	// 角色名
        BYTE muClass1;	// 未知
        BYTE muClass2;
        BYTE x3;
        WORD level;	// 等级
        DWORD exp;	// 当前经验
        WORD strength;	// 力量
        WORD dexterity;	// 敏捷
        WORD vitality;	// 体力
        WORD energy;	// 智力
        WORD life;		// 生命
        WORD mana;		// 魔法
        WORD maxLife;	// 最大生命
        WORD maxMana;	// 最大魔法
        DWORD expUp;		//升级经验
        char x4[26];
        WORD levelUpPoint;	// 升级点
        BYTE skillCount; // 技能数量
        BYTE skills[20]; // 技能列表
    };

    struct TeamPlayerInfo
    {
        char name[11];
        BYTE v1, v2, v3, v4;
    };

    struct GuildPlayerInfo
    {
        char name[11];
        BYTE v1;
    };
    struct Struct_7CB0268
    {
        int v1;
        char v2[8];
        char v3;
        char v4[64];
        char v5[3];
    };

    struct ColorRGB_Float
    {
        float r, g, b;
    };

    typedef char MacroTxtEntry[256];
    typedef char TextBmdEntry[300];
    typedef char CharacterItemData[68];
    typedef char StrBufEntry_7BE8BC0[0x100];

    struct MainData
    {
        BYTE dword_485CDC[6400];
        BYTE byte_4875DC[25600];
        LPDIRECTSOUND3DLISTENER pdsListener_48D9DC;
        BYTE dword_48D9E0[6404];
        BYTE dword_48F2E4[1600];
        BYTE byte_48F924[1600];
        BYTE dword_48FF64[6400];
        BYTE byte_491864[400];
        BYTE dsoundIsInit_4919F4;
        BYTE byte_4919F5;
        WORD byte_4919F6;
        int dword_4919F8;
        LPDIRECTSOUND8 pdsound_4919FC;
        int reserved_491A00;
        int dword_491A04;
        BYTE byte_491A08;
        BYTE byte_491A09[255];
        WORD word_491B08;
        BYTE byte_491B0A[32];
        BYTE byte_491B2A[6778];
        BYTE byte_4935A4[2396];
        BYTE byte_493F00[2394];
        BYTE byte_49485A[6];
        BYTE dword_494860[1509];
        BYTE byte_494E45[1035];
        BYTE byte_495250[245];
        BYTE byte_495345[64256];
        BYTE byte_4A4E45[67598];
        BYTE byte_4B5653[61169];
        BYTE byte_4C4544[2305];
        BYTE byte_4C4E45[1025];
        BYTE byte_4C5246[255];
        BYTE byte_4C5345[1801];
        BYTE byte_4C5A4E[63735];
        BYTE byte_4D5345[62718];
        BYTE byte_4E4843[1803];
        BYTE byte_4E4F4E[1015];
        BYTE byte_4E5345[65536];
        BYTE byte_4F5345[271];
        BYTE byte_4F5454[65265];
        BYTE byte_505345[8712];
        BYTE byte_50754D[9755];
        BYTE byte_509B68[108255];
        BYTE byte_524247[3332];
        BYTE byte_524F4B[3];
        BYTE byte_524F4E[1015];
        BYTE byte_525345[61951];
        BYTE byte_534544[767];
        BYTE byte_534843[1538];
        BYTE byte_534E45[1025];
        BYTE byte_535246[255];
        BYTE byte_535345[260];
        BYTE byte_535449[61447];
        BYTE byte_544450[1011];
        BYTE byte_544843[1538];
        BYTE byte_544E45[1291];
        BYTE byte_545350[3076];
        BYTE byte_545F54[61169];
        BYTE byte_554E45[1280];
        BYTE byte_555345[65536];
        BYTE byte_565345[196608];
        BYTE byte_595345[64256];
        BYTE byte_5A4E45[1280];
        BYTE byte_5A5345[71099];
        BYTE byte_5B6900[38656];
        BYTE byte_5C0000[142942];
        BYTE byte_5E2E5E[12544];
        BYTE byte_5E5F5E[29254];
        BYTE byte_5ED1A4[172497];
        BYTE byte_617375[61905];
        BYTE byte_626546[65534];
        BYTE byte_636544[49131];
        BYTE byte_64252F[16424];
        BYTE byte_646557[2318];
        BYTE byte_646E65[67311];
        BYTE byte_657554[129265];
        BYTE byte_676E45[1788];
        BYTE byte_677541[62242];
        BYTE byte_686863[60197];
        int word_695388;
        int byte_69538C;
        BYTE byte_695390[3524];
        BYTE byte_696154[1807];
        BYTE byte_696863[2531];
        BYTE byte_697246[167471];
        BYTE byte_6C0075[29909];
        BYTE byte_6C754A[101086];
        BYTE byte_6E0028[24866];
        BYTE byte_6E614A[3587];
        BYTE byte_6E6F4D[1533];
        BYTE byte_6E754A[9];
        BYTE byte_6E7553[126976];
        BYTE byte_706553[16697];
        int dword_70A68C;
        BYTE flt_70A690[8];
        WORD word_70A698;
        BYTE byte_70A69A[3202];
        int word_70B31C;
        BYTE byte_70B320[8];
        BYTE byte_70B328[110117];
        BYTE byte_72614D[3582];
        BYTE byte_726F4B[246];
        BYTE byte_727041[46318];
        BYTE byte_73252F[17172];
        BYTE byte_736843[63760];
        BYTE byte_746153[508];
        BYTE byte_74634F[66821];
        BYTE byte_756854[67322];
        BYTE byte_766F4E[193023];
        BYTE byte_79614D[466610];
        BYTE byte_807FFF[1578624];
        BYTE byte_98967F[3565953];
        BYTE byte_CF0000[173103];
        BYTE byte_D1A42F[2972625];
        BYTE byte_FF0000[22785];
        BYTE byte_FF5901[42750];
        BYTE byte_FFFFFF[5];
        BYTE byte_1000004[65788];
        BYTE byte_1010100;
        BYTE byte_1010101[65279];
        BYTE byte_1020000[65536];
        BYTE byte_1030000[16646148];
        BYTE byte_2010004[13500412];
        BYTE byte_2CF0000[2879616];
        BYTE byte_2FAF080[462976];
        BYTE byte_3020100[131842];
        BYTE byte_3040402[16514046];
        BYTE byte_4000000[131843];
        BYTE byte_4020303[197120];
        BYTE byte_4050503[513];
        BYTE byte_4050704[16513276];
        BYTE byte_5010000[2448384];
        BYTE byte_5265C00[2487084];
        int dword_54C4F2C;
        BYTE byte_54C4F30[48];
        BYTE byte_54C4F60[48];
        BYTE flt_54C4F90[21504];
        char szSavedId_54CA390[12];
        char szVersion_54CA39C[12];
        int dword_54CA3A8;
        BYTE byte_54CA3AC[256];
        char connectIpBuf_54CA4AC[52];
        int dword_54CA4E0;
        int musicOnOff_54CA4E4;
        BYTE* dword_54CA4E8;
        int g_ppvBits1;
        int dword_54CA4F0;
        int dword_54CA4F4;
        BYTE randNums_54CA4F8[400];
        int soundOnOff_54CA688;
        HDC hdc2_54CA68C;
        HWND hWnd1_54CA690;
        int dword_54CA694;
        HDC hdc1_54CA698;
        HGLRC hglrc_54CA69C;
        HFONT hfont1_54CA6A0;
        HFONT hfont2_54CA6A4;
        HFONT hfont3_54CA6A8;
        int reserved_54CA6AC;
        BYTE byte_54CA6B0;
        BYTE byte_54CA6B1;
        WORD byte_54CA6B2;
        BYTE g_hLibModule[12];
        int dword_54CA6C0;
        BYTE byte_54CA6C4;
        BYTE byte_54CA6C5;
        WORD byte_54CA6C6;
        int dword_54CA6C8;
        int g_Default1;
        BYTE byte_54CA6D0[12];
        int dword_54CA6DC;
        SocketDataBuf socketDataBuf_54CA6E0;
        int dword_572705C;
        int dword_5727060;
        BYTE byte_5727064[256];
        BYTE byte_5727164[32];
        int dword_5727184;
        int dword_5727188;
        int byte_572718C;
        int dword_5727190;
        int reserved_5727194;
        BYTE byte_5727198[264];
        BYTE byte_57272A0[260];
        int dword_57273A4;
        int byte_57273A8;
        int dword_57273AC;
        int dword_57273B0;
        int dword_57273B4;
        char name_57273B8[12];
        //int dword_57273BC;
        //WORD word_57273C0;
        //WORD byte_57273C2;
        int myGameObjId_57273C4;
        int dword_57273C8;
        int dword_57273CC;
        int dword_57273D0;
        int dword_57273D4;
        BYTE word_57273D8[5];
        BYTE dword_57273DD[4];
        BYTE word_57273E1[3];
        BYTE byte_57273E4[24];
        int dword_57273FC;
        int byte_5727400;
        int dword_5727404;
        int byte_5727408;
        int dword_572740C;
        int dword_5727410;
        int dword_5727414;
        int byte_5727418;
        int dword_572741C;
        int dword_5727420;
        int summonLife_5727424; // 召唤兽生命百分比
        int dword_5727428;
        BYTE byte_572742C;
        BYTE byte_572742D;
        BYTE byte_572742E;
        BYTE byte_572742F;
        int dword_5727430;
        int dword_5727434;
        int flt_5727438;
        int dword_572743C;
        int dword_5727440;
        int dword_5727444;
        int flt_5727448;
        int dword_572744C;
        int dword_5727450;
        int dword_5727454;
        BYTE byte_5727458[3200];
        BYTE flt_57280D8[4800];
        BYTE byte_5729398[32];
        WORD byte_57293B8;
        WORD word_57293BA;
        WORD word_57293BC;
        BYTE word_57293BE[10];
        BYTE byte_57293C8[36];
        BYTE dword_57293EC[52];
        BYTE byte_5729420[16];
        BYTE byte_5729430[18];
        WORD word_5729442;
        WORD word_5729444;
        WORD word_5729446;
        WORD word_5729448;
        BYTE word_572944A[7230];
        BYTE dword_572B088[22032];
        BYTE byte_5730698[1840];
        BYTE byte_5730DC8[48];
        BYTE byte_5730DF8[688];
        BYTE byte_57310A8[48];
        BYTE byte_57310D8[736];
        BYTE dword_57313B8[368];
        BYTE byte_5731528[1472];
        BYTE byte_5731AE8[8832];
        BYTE dword_5733D68[688];
        BYTE byte_5734018[84];
        BYTE dword_573406C[184];
        BYTE dword_5734124[184];
        BYTE dword_57341DC[184];
        BYTE dword_5734294[184];
        BYTE dword_573434C[184];
        BYTE dword_5734404[368];
        BYTE dword_5734574[184];
        BYTE dword_573462C[368];
        BYTE dword_573479C[184];
        BYTE dword_5734854[184];
        BYTE dword_573490C[184];
        BYTE dword_57349C4[184];
        BYTE dword_5734A7C[184];
        BYTE dword_5734B34[552];
        BYTE dword_5734D5C[184];
        BYTE dword_5734E14[368];
        BYTE dword_5734F84[184];
        BYTE dword_573503C[184];
        BYTE dword_57350F4[184];
        BYTE dword_57351AC[184];
        BYTE dword_5735264[184];
        BYTE dword_573531C[184];
        BYTE dword_57353D4[52];
        BYTE byte_5735408[132];
        BYTE dword_573548C[184];
        BYTE dword_5735544[1104];
        BYTE dword_5735994[184];
        BYTE dword_5735A4C[1572];
        BYTE byte_5736070[8280];
        BYTE byte_57380C8[1840];
        BYTE byte_57387F8[36];
        BYTE word_573881C[12];
        BYTE dword_5738828[36];
        int dword_573884C;
        int dword_5738850;
        BYTE dword_5738854[53268];
        BYTE texcoord2f_1[120000];
        BYTE vertex_1[9000000];
        BYTE color3f_1[9000000];
        BYTE dword_688D5A8[48];
        BYTE dword_688D5D8[48];
        BYTE dword_688D608[48];
        BYTE dword_688D638[48];
        BYTE dword_688D668[96];
        BYTE dword_688D6C8[48];
        BYTE dword_688D6F8[48];
        BYTE dword_688D728[48];
        BYTE dword_688D758[48];
        BYTE dword_688D788[48];
        BYTE dword_688D7B8[96];
        BYTE dword_688D818[96];
        BYTE dword_688D878[192];
        BYTE dword_688D938[96];
        BYTE dword_688D998[1296];
        BYTE dword_688DEA8[432];
        BYTE dword_688E058[48];
        BYTE dword_688E088[144];
        BYTE dword_688E118[192];
        BYTE dword_688E1D8[99792];
        BYTE flt_68A67A8[12];
        BYTE dword_68A67B4[8];
        BYTE flt_68A67BC[8];
        BYTE dword_68A67C4[12];
        int flt_68A67D0;
        int dword_68A67D4;
        BYTE dword_68A67D8[26955];
        BYTE byte_68AD123[5973057];
        int flt_6E5F564;
        int dword_6E5F568;
        BYTE dword_6E5F56C[2392];
        int byte_6E5FEC4;
        BYTE byte_6E5FEC8[2098748];
        BYTE byte_7060504[6901248];
        BYTE word_76F5304[41360];
        BYTE byte_76FF494[3000004];
        BYTE byte_79DBB58[8];
        int dword_79DBB60;
        BYTE byte_79DBB64[12];
        int dword_79DBB70;
        BYTE dword_79DBB74[92];
        BYTE byte_79DBBD0[96];
        int dword_79DBC30;
        int dword_79DBC34;
        BYTE dword_79DBC38[152];
        BYTE dword_79DBCD0[424];
        int flt_79DBE78;
        int flt_79DBE7C;
        int flt_79DBE80;
        BYTE* newData3ACA0h_79DBE84;
        BYTE* dword_79DBE88;
        int reserved_79DBE8C;
        BYTE dword_79DBE90[8];
        int dword_79DBE98;
        int dword_79DBE9C;
        BYTE dword_79DBEA0[8];
        BYTE byte_79DBEA8[12];
        BYTE byte_79DBEB4[24];
        BYTE byte_79DBECC[11164];
        BYTE byte_79DEA68[12];
        BYTE byte_79DEA74[12];
        BYTE byte_79DEA80[12];
        BYTE byte_79DEA8C[36];
        BYTE byte_79DEAB0[11128];
        BYTE byte_79E1628[8];
        BYTE byte_79E1630[8];
        int dword_79E1638;
        int dword_79E163C;
        BYTE dword_79E1640[48];
        BYTE byte_79E1670[1440];
        BYTE byte_79E1C10[8];
        BYTE byte_79E1C18[60];
        int byte_79E1C54;
        BYTE byte_79E1C58[335928];
        WORD byte_7A33C90;
        BYTE byte_7A33C92[66];
        int byte_7A33CD4;
        BYTE byte_7A33CD8[20];
        BYTE byte_7A33CEC[75108];
        WORD byte_7A46250;
        WORD byte_7A46252;
        BYTE byte_7A46254[88];
        BYTE byte_7A462AC[1424];
        BYTE byte_7A4683C[307284];
        BYTE byte_7A91890[463200];
        int byte_7B029F0;
        BYTE byte_7B029F4[8];
        BYTE byte_7B029FC[1504];
        BYTE byte_7B02FDC[7444];
        int byte_7B04CF0;
        BYTE byte_7B04CF4[8];
        int byte_7B04CFC;
        BYTE byte_7B04D00[51184];
        BYTE byte_7B114F0[12];
        int byte_7B114FC;
        BYTE byte_7B11500[375984];
        BYTE byte_7B6D1B0[36];
        BYTE flt_7B6D1D4[48];
        BYTE dword_7B6D204[6556];
        BYTE byte_7B6EBA0[688];
        BYTE byte_7B6EE50[40];
        int dword_7B6EE78;
        BYTE byte_7B6EE7C[128];
        BYTE byte_7B6EEFC[37472];
        BYTE byte_7B7815C[128];
        BYTE byte_7B781DC[980];
        int dword_7B785B0;
        int dword_7B785B4;
        int byte_7B785B8;
        BYTE dword_7B785BC[12];
        char fileParseStrBuf_7B785C8[256];
        BYTE* newData3700h2_7B786C8;
        MyGameObjInfo* myGameObjInfo_7B786CC;
        BYTE* newData900h2_7B786D0;
        BYTE* newData570h_7B786D4;

        NpcIdName npcIdNames_7B786D8[256];
        //BYTE byte_7B786D8;
        //BYTE byte_7B786D9[33];
        //BYTE byte_7B786FA[13790];

        BYTE* newData384h_7B7BCD8;
        int fileParseTag_7B7BCDC;
        float fileParseFloatBuf_7B7BCE0;
        BYTE* newData900h1_7B7BCE4;
        TextBmdEntry textBmd_7B7BCE8[600];
        BYTE byte_7BA7C08[2000];
        BYTE byte_7BA83D8[320];
        BYTE* newData3700h1_7BA8518;
        FILE* cfgFileFp_7BA851C;
        int dword_7BA8520;
        int npcNum_7BA8524;
        BYTE dword_7BA8528[8];
        int fontHeight_7BA8530;
        int reserved_7BA8534;
        int dword_7BA8538;
        int dword_7BA853C;
        int dword_7BA8540;
        int byte_7BA8544;
        int dword_7BA8548;
        int dword_7BA854C;
        int dword_7BA8550;
        int flt_7BA8554;
        int strBufDataSize_7BA8558[0x1000C];
        BYTE string_7BE8588[260];
        BYTE byte_7BE868C[1060];
        BYTE byte_7BE8AB0[264];
        int dword_7BE8BB8;
        int byte_7BE8BBC;
        StrBufEntry_7BE8BC0 strBuf_7BE8BC0[0x40C];
        BYTE byte_7C297C0[11];
        BYTE byte_7C297CB[257];
        BYTE dword_7C298CC[33063];
        BYTE byte_7C319F3[269];
        int dword_7C31B00;
        int dword_7C31B04;
        int dword_7C31B08;
        BYTE byte_7C31B0C[36];
        BYTE dword_7C31B30[8];
        BYTE byte_7C31B38[40];
        BYTE byte_7C31B60[516];
        BYTE byte_7C31D64[57841];
        BYTE byte_7C3FF55[3];

        MacroTxtEntry macroTxt_7C3FF58[10];
        //BYTE byte_7C3FF80[516];
        //BYTE byte_7C40184[1748];
        //BYTE byte_7C40858[256];

        int dword_7C40958;
        BYTE byte_7C4095C[256];
        BYTE byte_7C40A5C[2304];
        int dword_7C4135C;
        SIZE sz_7C41360;
        BYTE dword_7C41368;
        BYTE byte_7C41369;
        WORD reserved_7C4136A;
        int dword_7C4136C;
        int word_7C41370;
        BYTE byte_7C41374[1280];
        int dword_7C41874;
        int dword_7C41878;
        BYTE dword_7C4187C[1024];
        BYTE byte_7C41C7C[48];
        int dword_7C41CAC;
        int dword_7C41CB0;
        int dword_7C41CB4;
        int dword_7C41CB8;
        int dword_7C41CBC;
        int dword_7C41CC0;
        int dword_7C41CC4;
        int dword_7C41CC8;
        int dword_7C41CCC;
        int dword_7C41CD0;
        BYTE dword_7C41CD4[8];
        BYTE dword_7C41CDC[8];
        int byte_7C41CE4;
        int dword_7C41CE8;
        BYTE byte_7C41CEC;
        BYTE byte_7C41CED;
        BYTE byte_7C41CEE;
        BYTE byte_7C41CEF;
        BYTE byte_7C41CF0;
        BYTE byte_7C41CF1;
        WORD reserved_7C41CF2;
        int dword_7C41CF4;
        int strBufIndex_7C41CF8;
        int dword_7C41CFC;
        int dword_7C41D00;
        int dword_7C41D04;
        int dword_7C41D08;
        int dword_7C41D0C;
        int byte_7C41D10;
        int dword_7C41D14;
        int dword_7C41D18;
        int byte_7C41D1C;
        int dword_7C41D20;
        int dword_7C41D24;
        BYTE dword_7C41D28[8];
        BYTE dword_7C41D30[8];

        TeamPlayerInfo teamPlayerInfos_7C41D38[5];
        //BYTE byte_7C41D38[11];
        //BYTE byte_7C41D43[64];
        BYTE align_7C41D83;

        int dword_7C41D84;
        int dword_7C41D88;
        int dword_7C41D8C;
        int dword_7C41D90;
        int dword_7C41D94;
        int dword_7C41D98;
        int dword_7C41D9C;
        int dword_7C41DA0;
        int dword_7C41DA4;
        int dword_7C41DA8;
        int dword_7C41DAC;
        int dword_7C41DB0;
        int dword_7C41DB4;
        int dword_7C41DB8;
        int dword_7C41DBC;
        BYTE dword_7C41DC0[8];
        BYTE byte_7C41DC8[8];
        BYTE dword_7C41DD0[64];
        BYTE byte_7C41E10[12];
        int dword_7C41E1C;
        int dword_7C41E20;
        BYTE byte_7C41E24[184];
        BYTE byte_7C41EDC[41];
        BYTE byte_7C41F05[447683];
        BYTE byte_7CAF3C8[72];
        BYTE byte_7CAF410[20];
        BYTE byte_7CAF424[8];
        BYTE byte_7CAF42C[100];
        BYTE byte_7CAF490[76];
        BYTE byte_7CAF4DC[24];
        BYTE byte_7CAF4F4[17];
        BYTE byte_7CAF505[2683];
        int word_7CAFF80;
        int dword_7CAFF84;
        BYTE dword_7CAFF88[18];
        WORD byte_7CAFF9A;
        WORD word_7CAFF9C;
        WORD word_7CAFF9E;
        WORD word_7CAFFA0;
        WORD word_7CAFFA2;
        BYTE dword_7CAFFA4[20];
        int dword_7CAFFB8;
        WORD reserved_7CAFFBC;
        BYTE byte_7CAFFBE;
        BYTE byte_7CAFFBF[5];
        int dword_7CAFFC4;
        BYTE dword_7CAFFC8[8];
        BYTE dword_7CAFFD0[108];
        BYTE byte_7CB003C;
        BYTE byte_7CB003D;
        WORD byte_7CB003E;
        int dword_7CB0040;
        int dword_7CB0044;

        GuildPlayerInfo guildPlayerInfos_7CB0048[45];
        //BYTE byte_7CB0048[11];
        //BYTE byte_7CB0053[533];
        int reserved_7CB0268;

        Struct_7CB0268 dword_7CB0268[1000];
        //int dword_7CB0268;
        //BYTE byte_7CB026C[8];
        //BYTE byte_7CB0274;
        //BYTE byte_7CB0275[79907];
        //int byte_7CC3A98;
        //BYTE byte_7CC3A9C[9];
        //BYTE byte_7CC3AA5[64];
        //BYTE unk_7CC3AE5[3];

        int dword_7CC3AE8;
        int dword_7CC3AEC;
        int dword_7CC3AF0;
        int dword_7CC3AF4;
        BYTE dword_7CC3AF8[8];
        BYTE word_7CC3B00[56];
        BYTE dword_7CC3B38[2120];
        int dword_7CC4380;
        int dword_7CC4384;
        int dword_7CC4388;
        int dword_7CC438C;
        BYTE dword_7CC4390[8];
        BYTE byte_7CC4398[56];
        BYTE dword_7CC43D0[8104];
        int dword_7CC6378;
        BYTE dword_7CC637C[8];
        BYTE dword_7CC6384[44];
        BYTE byte_7CC63B0[64];
        BYTE word_7CC63F0[56];
        BYTE dword_7CC6428[2120];
        int dword_7CC6C70;
        int dword_7CC6C74;
        BYTE word_7CC6C78[26];
        BYTE byte_7CC6C92[30];

        CharacterItemData dword_7CC6CB0[64];
        //BYTE byte_7CC7B90[476];
        //BYTE byte_7CC7D6C[14];
        //BYTE word_7CC7D7A[22];
        //int dword_7CC7D90;
        //int dword_7CC7D94;
        //int dword_7CC7D98;
        //BYTE byte_7CC7D9C[20];

        BYTE byte_7CC7DB0[190];
        WORD byte_7CC7E6E;
        int dword_7CC7E70;
        BYTE dword_7CC7E74[124];
        BYTE stru_7CC7EF0[240];
        int dword_7CC7FE0;
        int dword_7CC7FE4;
        int dword_7CC7FE8;
        int dword_7CC7FEC;
        int dword_7CC7FF0;
        WORD word_7CC7FF4;
        WORD byte_7CC7FF6;
        int dword_7CC7FF8;
        int byte_7CC7FFC;
        BYTE byte_7CC8000[56];
        BYTE byte_7CC8038[2120];
        int dword_7CC8880;
        int dword_7CC8884;
        int dword_7CC8888;
        int dword_7CC888C;
        int dword_7CC8890;
        int dword_7CC8894;
        int dword_7CC8898;
        int dword_7CC889C;
        int dword_7CC88A0;
        int dword_7CC88A4;
        int dword_7CC88A8;
        BYTE byte_7CC88AC;
        BYTE byte_7CC88AD[3];
        int dword_7CC88B0;
        int dword_7CC88B4;
        int dword_7CC88B8;
        BYTE btnGuild_7CC88BC;
        BYTE btnTeam_7CC88BD;
        BYTE btnCharacter_7CC88BE;
        BYTE btnItem_7CC88BF;
        BYTE byte_7CC88C0;
        BYTE byte_7CC88C1;
        BYTE byte_7CC88C2;
        BYTE byte_7CC88C3;
        int byte_7CC88C4;
        int dword_7CC88C8;
        int dword_7CC88CC;
        int byte_7CC88D0;
        int dword_7CC88D4;
        int dword_7CC88D8;
        int dword_7CC88DC;
        BYTE byte_7CC88E0;
        BYTE byte_7CC88E1[4103];
        int dword_7CC98E8;
        int dword_7CC98EC;
        int flt_7CC98F0;
        int flt_7CC98F4;
        int flt_7CC98F8;
        int flt_7CC98FC;
        BYTE byte_7CC9900[12];
        BYTE byte_7CC990C[12];
        BYTE byte_7CC9918[12];
        int dword_7CC9924;
        int dword_7CC9928;
        int dword_7CC992C;
        int dword_7CC9930;
        int byte_7CC9934;
        BYTE flt_7CC9938[262144];
        int flt_7D09938;
        int flt_7D0993C;
        int flt_7D09940;
        int flt_7D09944;
        int flt_7D09948;
        BYTE flt_7D0994C[36];
        ColorRGB_Float terrainLightData_7D09970[256 * 256];
        BYTE byte_7DC9970[262144];
        int dword_7E09970;
        int dword_7E09974;
        int dword_7E09978;
        int dword_7E0997C;
        int dword_7E09980;
        int dword_7E09984;
        int dword_7E09988;
        int dword_7E0998C;
        int flt_7E09990;
        int flt_7E09994;
        int flt_7E09998;
        int flt_7E0999C;
        int flt_7E099A0;
        int flt_7E099A4;
        int flt_7E099A8;
        int flt_7E099AC;
        int flt_7E099B0;
        int flt_7E099B4;
        int dword_7E099B8;
        int flt_7E099BC;
        BYTE byte_7E099C0[786432];
        int flt_7EC99C0;
        BYTE flt_7EC99C4[40];
        BYTE byte_7EC99EC[65536];
        BYTE byte_7ED99EC[65560];
        BYTE flt_7EE9A04[262140];
        int flt_7F29A00;
        BYTE flt_7F29A04[262160];
        int dword_7F69A14;
        BYTE byte_7F69A18[524300];
        BYTE unk_7FE9A24;
        BYTE byte_7FE9A25[795];
        int dword_7FE9D40;
        int dword_7FE9D44;
        BYTE dword_7FE9D48[90808];
        BYTE byte_8000000[525320];
        BYTE byte_8080408[170296];
        int dword_80A9D40;
        int dword_80A9D44;
        BYTE dword_80A9D48[786424];
        BYTE g_alpha1[262144];
        WORD unk_81A9D40;
        BYTE word_81A9D42[6];
        BYTE dword_81A9D48[240];
        BYTE dword_81A9E38[128];
        int flt_81A9EB8;
        int flt_81A9EBC;
        int flt_81A9EC0;
        int flt_81A9EC4;
        int flt_81A9EC8;
        int flt_81A9ECC;
        int flt_81A9ED0;
        int flt_81A9ED4;
        int flt_81A9ED8;
        int flt_81A9EDC;
        int flt_81A9EE0;
        int flt_81A9EE4;
        int flt_81A9EE8;
        int flt_81A9EEC;
        int flt_81A9EF0;
        int byte_81A9EF4;
        BYTE byte_81A9EF8[1088];
        BYTE dword_81AA338[44];
        BYTE byte_81AA364[14288];
        BYTE byte_81ADB34[5105];
        BYTE byte_81AEF25[11257];
        BYTE byte_81B1B1E[297];
        BYTE byte_81B1C47[676];
        BYTE byte_81B1EEB[33933];
        WORD byte_81BA378;
        WORD byte_81BA37A;
        int dword_81BA37C;
        int dword_81BA380;
        int dword_81BA384;
        int dword_81BA388;
        int dword_81BA38C;
        BYTE dword_81BA390[16];
        WORD byte_81BA3A0;
        BYTE byte_81BA3A2[15038];
        BYTE flt_81BDE60[8];
        int byte_81BDE68;
        BYTE dword_81BDE6C[4092];
        int byte_81BEE68;
        BYTE byte_81BEE6C[232];
        BYTE byte_81BEF54[100];
        BYTE byte_81BEFB8[3424];
        BYTE byte_81BFD18[8];
        BYTE dword_81BFD20[228];
        BYTE byte_81BFE04[100];
        BYTE byte_81BFE68[2064];
        WORD byte_81C0678;
        BYTE byte_81C067A[6];
        BYTE byte_81C0680[1128];
        BYTE byte_81C0AE8[2464];
        BYTE byte_81C1488[160];
        int currMapNumber_81C1528;
        int byte_81C152C;
        BYTE byte_81C1530;
        BYTE byte_81C1531[255];
        int dword_81C1630;
        int flt_81C1634;
        int dword_81C1638;
        int byte_81C163C;
        int dword_81C1640;
        int g_texture1;
        int byte_81C1648;
        BYTE byte_81C164C[12];
        BYTE byte_81C1658;
        BYTE byte_81C1659;
        WORD byte_81C165A;
        int dword_81C165C;
        BYTE beginLButtonDown_81C1660;
        BYTE byte_81C1661[7];
        int dword_81C1668;
        int flt_81C166C;
        int flt_81C1670;
        int dword_81C1674;
        int beginLButtonUp_81C1678;
        BYTE byte_81C167C[12];
        BYTE flt_81C1688[16];
        BYTE flt_81C1698[16];
        int flt_81C16A8;
        BYTE byte_81C16AC[260];
        int curMouseYrate_81C17B0;
        int curMouseXrate_81C17B4;
        int dword_81C17B8;
        int flt_81C17BC;
        int flt_81C17C0;
        int flt_81C17C4;
        int beginRButtonUp_81C17C8;
        int dword_81C17CC;
        int lButtonDbClick_81C17D0;
        int dword_81C17D4;
        int dword_81C17D8;
        int flt_81C17DC;
        int flt_81C17E0;
        int curRButtonDown_81C17E4;
        int dword_81C17E8;
        int dword_81C17EC;
        int g_angle1;
        int dword_81C17F4;
        int curLButtonDown_81C17F8;
        int dword_81C17FC;
        int dword_81C1800;
        int beginRButtonDown_81C1804;
        int flt_81C1808;
        int flt_81C180C;
        int flt_81C1810;
        BYTE byte_81C1814;
        BYTE byte_81C1815;
        BYTE byte_81C1816;
        BYTE byte_81C1817;
        int dword_81C1818;
        int byte_81C181C;
        int dword_81C1820;
        int byte_81C1824;
        int dword_81C1828;
        int dword_81C182C;
        int dword_81C1830;
        int dword_81C1834;
        float flt_81C1838;
        float reserved_81C183C;
        BYTE byte_81C1840[20];
        BYTE byte_81C1854[24];
        BYTE byte_81C186C;
        BYTE byte_81C186D[5477];
        BYTE byte_81C2DD2[7028];
        WORD unk_81C4946;
        int dword_81C4948;
        int dword_81C494C;
        int dword_81C4950;
        int dword_81C4954;
        BYTE dword_81C4958[28];
        int dword_81C4974;
        BYTE isDebug_81C4978;
        BYTE byte_81C4979;
        WORD reserved_81C497A;
        int dword_81C497C;
        int dword_81C4980;
        int byte_81C4984;
        int dword_81C4988;
        int dword_81C498C;
        int dword_81C4990;
        int dword_81C4994;
        int byte_81C4998;
        int dword_81C499C;
        BYTE byte_81C49A0;
        BYTE byte_81C49A1;
        BYTE byte_81C49A2;
        BYTE byte_81C49A3;
        int byte_81C49A4;
        BYTE dword_81C49A8[8];

        TextureDataInfo texDataInfo_81C49B0[1300];
        //BYTE byte_81C49B0[32];
        //int flt_81C49D0;
        //int flt_81C49D4;
        //int byte_81C49D8;
        //BYTE g_pixels1[1620];
        //int flt_81C5030;
        //int flt_81C5034;
        //int byte_81C5038;
        //int dword_81C503C;
        //BYTE byte_81C5040[40];
        //BYTE byte_81C5068[1400];
        //BYTE byte_81C55E0[480];
        //BYTE byte_81C57C0[1056];
        //BYTE byte_81C5BE0[57744];

        DWORD texDataByteCount_81D3D70;
        int dword_81D3D74;
        BYTE dword_81D3D78[8];
        BYTE dword_81D3D80[8];
        WORD word_81D3D88;
        WORD word_81D3D8A;
        WORD word_81D3D8C;
        WORD word_81D3D8E;
        WORD word_81D3D90;
        BYTE word_81D3D92[6];
        int unk_81D3D98;
        int word_81D3D9C;
        int dword_81D3DA0;
        BYTE dword_81D3DA4[8];
        int dword_81D3DAC;
        int dword_81D3DB0;
        int dword_81D3DB4;
        int dword_81D3DB8;
        int dword_81D3DBC;
        int dword_81D3DC0;
        int dword_81D3DC4;
        int dword_81D3DC8;
        int dword_81D3DCC;
        BYTE dword_81D3DD0[8];
        int dword_81D3DD8;
        int dword_81D3DDC;
        BYTE dword_81D3DE0[8];
        BYTE dword_81D3DE8[8];
        int byte_81D3DF0;
        int dword_81D3DF4;
        int dword_81D3DF8;
        int dword_81D3DFC;
        BYTE dword_81D3E00[8];
        int g_lp1;
        int dword_81D3E0C;
        int dword_81D3E10;
        int dword_81D3E14;
        int dword_81D3E18;
        int byte_81D3E1C;
        int dword_81D3E20;
        int byte_81D3E24;
        BYTE byte_81D3E28[24];
        int dword_81D3E40;
        int dword_81D3E44;
        BYTE byte_81D3E48[8];
        int dword_81D3E50;
        int dword_81D3E54;
        int dword_81D3E58;
        int dword_81D3E5C;
        int dword_81D3E60;
        int dword_81D3E64;
        int dword_81D3E68;
        int dword_81D3E6C;
        int dword_81D3E70;
        int dword_81D3E74;
        int dword_81D3E78;
        int dword_81D3E7C;
        BYTE dword_81D3E80[16];
        BYTE word_81D3E90[8];
        BYTE word_81D3E98[6];
        WORD word_81D3E9E;
        WORD word_81D3EA0;
        WORD word_81D3EA2;
        int word_81D3EA4;
        int g_Locale1;
        int dword_81D3EAC;
        int dword_81D3EB0;
        int dword_81D3EB4;
        int dword_81D3EB8;
        int dword_81D3EBC;
        int dword_81D3EC0;
        int dword_81D3EC4;
        int dword_81D3EC8;
        int dword_81D3ECC;
        BYTE moduleFileName_81D3ED0[260];
        int dword_81D3FD4;
        int dword_81D3FD8;
        int dword_81D3FDC;
        int dword_81D3FE0;
        int lpTopLevelExceptionFilter;
        WORD word_81D3FE8;
        WORD byte_81D3FEA;
        BYTE byte_81D3FEC[28];
        int dword_81D4008;
        int dword_81D400C;
        int dword_81D4010;
        int dword_81D4014;
        int dword_81D4018;
        int dword_81D401C;
        BYTE dword_81D4020[8];
        BYTE g_TimeZoneInformation1[172];
        int dword_81D40D4;
        int dword_81D40D8;
        BYTE g_LCData1[8];
        int byte_81D40E4;
        int dword_81D40E8;
        int dword_81D40EC;
        int dword_81D40F0;
        int dword_81D40F4;
        int dword_81D40F8;
        int dword_81D40FC;
        int dword_81D4100;
        int dword_81D4104;
        BYTE dword_81D4108[8];
        int dword_81D4110;
        int dword_81D4114;
        int dword_81D4118;
        int dword_81D411C;
        int dword_81D4120;
        int dword_81D4124;
        int dword_81D4128;
        int dword_81D412C;
        int g_lpMem1;
        int g_hHeap1;
        BYTE g_CodePage1[8];
        BYTE byte_81D4140[12];
        BYTE dword_81D414C[20];
        BYTE byte_81D4160[256];
        BYTE unk_81D4260;
        BYTE byte_81D4261[259];
        BYTE dword_81D4364[28];
        int dword_81D4380;
        BYTE byte_81D4384[252];
        int g_uNumber1;
        BYTE dword_81D4484[28];
        BYTE byte_81D44A0[4096];
        int dword_81D54A0;
        int dword_81D54A4;
        int dword_81D54A8;
        int dword_81D54AC;
        int dword_81D54B0;
        int dword_81D54B4;
    };

#pragma pack(pop)

    extern char* connectIp_4828FC;
    extern u_short connectPort_482900;
    extern bool windowMode_47C2CC;
    extern DWORD g_wndWidth;
    extern DWORD g_wndHeight;
    extern int nScene_482904;
    extern int dword_47CE38;
    extern BYTE byte_47CE3C;
    extern int dword_47C66C;
    extern int dword_47C670;
    extern BYTE byte_47CEB8;

    extern DWORD dword_47CEC8[];
#define strBufSizeLimit_47CEC8 dword_47CEC8

    extern DWORD dword_47CEBC;
    extern DWORD dword_47CEC4;
    extern DWORD dword_47CF00;

    void sub_405EC0(const char* message);
#define Send_00_405EC0 sub_405EC0

    void sub_406030(const char* name, const char* message);
#define Send_02_406030 sub_406030

    bool sub_42A460(const char*);
#define handleCmdText sub_42A460

    bool sub_44FD40(const char*);
#define speakFilter sub_44FD40

    void sub_42ADD0(const char*);
#define handleActionText sub_42ADD0

    void sub_43C2C0();
    void sub_43C3D0();
    void SetGlrc_404450();
    void* new_mem_byte(DWORD size);
    void sub_426900();

    /**
        屏幕左边显示文字信息
        color: 0 = 黄色，1 = 蓝色， 2 = 红色, 3 = 白色， 4 = 浅蓝色, 5 = 亮绿色
    */
    void sub_4279C0(const char* tag, const char* text, int color);
#define gamePrintLog sub_4279C0

    // 玩家头顶显示文字信息
    void sub_428140(const char* tag, const char* text, int);

    void sub_4057B0(const char* ip, WORD port);
#define netConnect sub_4057B0

    void sub_40C1B0();
#define MuDispatchPacket_40C1B0 sub_40C1B0

    LRESULT CALLBACK sub_403BF0(HWND, UINT, WPARAM, LPARAM);
#define WndProc sub_403BF0

    void sub_403940();
    void muInit();
    void readDataEncDec();
    void freeDisplay();
    void sceneLogo_44FF20(HDC hdc);
    void sceneLoadingPlay_454DF0(HDC hdc);
    void sub_4556D0(HDC hdc);

    // 可能是播放声音
    void sub_401570(int, BYTE*, int);

    void sub_403240();
    BYTE* sub_41B810(int, int, int, float, float, float);
    void sub_419520(int, void*);

    int sub_418B90(u_short gameObjId);
#define gameObjId2Index sub_418B90

    void sub_405980();
#define SendC1F402_405980 sub_405980

    void sub_44BCE0(int mapNumber);
#define LoadTerrain sub_44BCE0

    void sub_418BD0(BYTE*, int, int x, int y, float);
    void sub_419240(BYTE*);
    void sub_41E430(int, BYTE*, BYTE*, BYTE*, int, BYTE*, int, int);
    void sub_4212F0(int, char*, char*, char*, int, float, char*);
    void sub_442AD0(BYTE*);
    void sub_433E00(BYTE*, int, int, int item_gridPosition, int item_code, int item_level, int item_durability, int);

    void Send_03_405AB0(int checkSum);

    BYTE* sub_419880(int monsterId, int x, int y, int gameObjId);
#define addMonster sub_419880

    void sub_409050(BYTE*);
    bool sub_40E2D0(int x1, int y1, int x2, int y2, BYTE*, float);
    void sub_411690(BYTE*);

    // gameObjOutOfRange
    void sub_418B30(int gameObjId);

    bool sub_42ACE0(const char* src, const char* find, bool startWithFind);
#define stringSearch sub_42ACE0

    BYTE* sub_419110(int gameObjId, int, int x, int y, int);
    void sub_41DDC0(BYTE*);

    //设置gameObj模型动画
    void sub_40DC10(BYTE*, int animIndex);
#define setAnimIndex sub_40DC10
    
    void sub_412700(BYTE*, int lossOfBlood);
#define gameObjBloodLoss sub_412700

    void sub_41BDB0(BYTE*, int lossOfBlood, float* colorOfBlood);

    void sub_411E00(BYTE*);
    float sub_40D440(float, float, float, float);
    void sub_412630(BYTE*);
    void sub_41DD70(BYTE*);
    void sub_409BC0(BYTE*);
    void sub_412860(BYTE*);
    void sub_433BE0();
    void sub_444B30();
    void sub_418AD0(int gameObjId);
    float sub_43C880(float, float);
    void sub_427620(char* msg, int);

    void sub_405E70();
#define SendF312_405E70 sub_405E70

    void sub_44FD20();
    void sub_4342D0();
    void sub_44DD00();
    void sub_44D3B0();
    void sub_407960();

    void sub_405CD0();
#define Send_F3_00_405CD0 sub_405CD0

    void sub_444F70(BYTE*, int, int, int, float pos[2], int);
    void sub_4340D0(int, BYTE*, int);
    void sub_433D10(int, int, int, int);
    void sub_426F20();
    void sub_407260();
    void sub_44CDA0(const char* filepath);
    void sub_44CD00(const char* filepath);
    void sub_448180();
    void sub_4486C0();
    void sub_442790();
    void sub_401480(int);

    void sub_456C70(int);
#define DelTexture_456C70 sub_456C70

    void sub_401530();
#define releaseDSound_401530 sub_401530

    void sub_427FA0(const char*, const char*, BYTE*, int, int);

    void std_sub_426DB0();

}